﻿#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int LTDataType;

typedef struct ListNode
{
	LTDataType data;
	struct ListNode* next;//指向下一个结点地址的指针
	struct ListNode* prev;//指向上一个结点地址的指针

}LTNode;

LTNode* LTInit();//初始化
LTNode* LTPrint(LTNode* phead);//打印
//void LTDestroy(LTNode* phead);//销毁
void LTDestroy(LTNode** phead);//销毁


bool LTEmpty(LTNode* phead);//判空

LTNode* LTPushBack(LTNode* phead, LTDataType x);//尾插
LTNode* LTPushFront(LTNode* phead, LTDataType x);//头插

void LTPopBack(LTNode* phead);//尾删
void LTPopFront(LTNode* phead);//头删

//找寻数据
LTNode* LTFind(LTNode* phead, LTDataType x);
//在pos位置之后插⼊数据
void LTInsert(LTNode* pos, LTDataType x);
//在指定位置删除数据
void LTErase(LTNode* pos);

